package firstcontent.gc;

/**
 * @Author: fxy
 * @Date: 2022/02/24/13:13
 * @Description:
 * 内存泄漏： 只有对象不会再被程序用到了，但是GC又不能回收他们的情况，才叫内存泄漏。
 * 内存泄漏可能导致OOM
 */
public class LocalVarGC {
    public void localvarGC1(){
        byte[] buffer = new byte[10*1024*1024];
        System.gc();
    }

    public void localvarGC2(){
        byte[] buffer = new byte[10*1024*1024];
        buffer = null;
        System.gc();
    }

    public void localvarGC3(){
        {
            byte[] buffer = new byte[10*1024*1024];
        }

        /**
         * 并没有回收
         */
        System.gc();
    }

    public void localvarGC4(){
        {
            byte[] buffer = new byte[10*1024*1024];
        }
        int value = 10;
        /**
         * 此时回收了，原因是局部变量表
         */
        System.gc();
    }

    public void localvarGC5(){
       localvarGC1();
        System.gc();
    }
    public static void main(String[] args) {
        LocalVarGC localVarGC = new LocalVarGC();
        localVarGC.localvarGC5();
    }
}
